.. _cmlSxIsDone: cmlSxIsDone ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlSxIsDone ([in] VT_I4 BoardID, [in] VT_I4 Axis, [out] VT_PI4 pdwIsDone) DESCRIPTION ````````````` - 단일 축에 대하여 모션 완료를 확인(確認)합니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cml 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardId: 사용자가 설정한 디바이스(보드) ID. ▶ Axis: 사용자가 제어하고자 하는 축 번호. ▶ pdwIsDone: 이 매개 변수로 인해 모션 작업이 완료되었는지를 판단할 수 있습니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 0, 모션작업이 완료되지 않음 1, 모션작업이 완료됨 RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | 음수 | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ REFERENCE ``````````````` - INP 입력신호가 Enable 로 설정되었으면 Command 펄스 출력이 완료되어도 INP 입력이 ON 이 되기 전까지는 모션이 완료되지 않은 것으로 간주되어 반환되지 않습니다. .. note:: 윈도우 이벤트라는 것은 무엇입니까? 윈도우 운영체제는 Event Driven 혹은 Message Driven 방식의 구조로 되어 있습니다. 각 응용프로그램은 메시지 큐(Queue)를 가지고 있으며, 정확히 말하면, 메시지를 사용해 이벤트를 통지하는 방식으로 설계되어 있습니다. 윈도우 메시지를 처리한다는 것은 메시지 큐에서 메시지를 하나씩 꺼내서 윈도우 프로시저에 전송한다는 것을 의미하며, 이것은 그 행선지가 되는 윈도우에 전송되어 처리됩니다. RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | 음수 | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ EXAMPLE ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ : long nIsDone=0; long BoardID = 0; cmlSxMoveStart(BoardID, 0, 1000); while (1){ cmlSxIsDone(BoardID, 0, &nIsDone); if(nIsDone == cmlTRUE) break; else{ ... } } .. code-block:: c++ :linenos: Visual Basic Dim Board As Long Board = 0; SxMoveStart(BoardID, 0, 1000) Do Until IsDone ' 지정된 축에 대한 모션 완료 여부를 판단합니다. Call SxIsDone(BoardID, 0, IsDone) … .. code-block:: c++ :linenos: Delphi // IsDone 은 모션 완료를 검사하기 위한 가상의 변수 입니다. cmlSxMoveStart(0, 0, 1000); While (cmlTRUE) do Begin cmlSxIsDone(BoardID, 0, @IsDone); if ( IsDone = cmlTRUE ) then break; … end; SEE ALSO ``````````` .. seealso:: :ref:`cmlSxWaitDone`